
#pragma once

#include "GameObject.h"
#include <string>
#include "LightRenderer.h"
namespace GL
{

    class Light : public GameObject
    {
    public:
        Light(const std::string &shaderUrl);
        ~Light();
        void Render() override;

        void Update() override;

        void Destory() override;

        ObjectType GetType() const override
        {
            return ObjectType::Light;
        }

        LightRenderer *GetRenderer()
        {
            return m_Renderer;
        }

        void SetTranslate(glm::vec3 &vec)
        {
            m_Renderer->SetTranslate(vec);
        }
        void SetScale(glm::vec3 &vec)
        {
            m_Renderer->SetScale(vec);
        }

        void SetUniform3fv(const std::string &attributeName, glm::vec3 &vec)
        {
            m_Renderer->SetVec3(attributeName, vec);
        }

    private:
        LightRenderer *m_Renderer;
    };
}